
package com.shop.cloud.mall.common.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.shop.cloud.mall.common.enums.OrderLogisticsEnum;

import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.List;
import io.swagger.v3.oas.annotations.media.Schema;

/**
 * 订单物流
 *
 * @author
 * @date 2019-09-16 09:53:17
 */
@Data
@TableName("order_logistics")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "订单物流")
public class OrderLogistics extends Model<OrderLogistics> {
  private static final long serialVersionUID = 1L;

    /**
   * PK
   */
	@Schema(description = "PK")
    @TableId(type = IdType.ASSIGN_ID)
    private String id;
    /**
   * 所属租户
   */
	@Schema(description = "所属租户")
    private String tenantId;
    /**
   * 逻辑删除标记（0：显示；1：隐藏）
   */
	@Schema(description = "逻辑删除标记")
    private String delFlag;
    /**
   * 创建时间
   */
	@Schema(description = "创建时间")
    private LocalDateTime createTime;
    /**
   * 最后更新时间
   */
	@Schema(description = "最后更新时间")
    private LocalDateTime updateTime;
    /**
   * 邮编
   */
	@Schema(description = "邮编")
    private String postalCode;
    /**
   * 收货人名字
   */
	@Schema(description = "收货人名字")
    private String recName;
    /**
   * 收货人电话号码
   */
	@Schema(description = "收货人电话号码")
    private String recTel;
    /**
   * 收货人详细地址
   */
	@Schema(description = "收货人详细地址")
    private String recAddress;
    /**
   * 物流公司编码
   */
	@Schema(description = "物流公司编码")
    private String logisticsCode;
	/**
	 * 物流公司名称
	 */
	@Schema(description = "物流公司名称")
	private String logisticsName;
	/**
	 * 面单方式；1：手动填写；2：自动获取电子面单
	 */
	@Schema(description = "面单方式；1：手动填写；2：自动获取电子面单")
	private String labelWay;
	/**
	 * 面单短链，多个面单时使用”,”隔开
	 */
	@Schema(description = "面单短链，多个面单时使用”,”隔开")
	private String labelUrl;
	/**
	 * 订单ID
	 */
	@Schema(description = "订单ID")
	private String orderId;
    /**
   * 物流单号
   */
    private String logisticsNo;
	/**
	 * 快递单当前状态，包括-1错误，0在途，1揽收，2疑难，3签收，4退签，5派件，6退回，7转投 等7个状态
	 */
	private String status;
	/**
	 * 快递单当前状态，包括-1错误，0在途，1揽收，2疑难，3签收，4退签，5派件，6退回，7转投 等7个状态
	 */
	@TableField(exist = false)
	private String statusDesc;

	public String getStatusDesc() {
		if(this.status == null){
			return null;
		}
		return OrderLogisticsEnum.valueOf(OrderLogisticsEnum.STATUS_PREFIX + "_" + this.status).getDesc();
	}
	/**
	 * 是否签收标记（0：是；1：否）
	 */
	private String isCheck;
	/**
	 * 错误信息
	 */
	private String message;
	/**
	 * 物流详情
	 */
	@TableField(exist = false)
	private List<OrderLogisticsDetail> listOrderLogisticsDetail;
}
